using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using hotelservices;

namespace hotelservices.app_code.ds
{
    public class CuartoDS
    {
        public cuarto getCuartoById(int id)
        {
            HotelEntities entities = new HotelEntities();
            IQueryable<cuarto> res = (from s in entities.cuarto where s.idcuarto == id select s);
            if (res.Count() > 0)
                return res.First();
            else
                return null;
        }

        public List<cuarto> getCuartoByReserva(int fk_reserva)
        {
            HotelEntities entities = new HotelEntities();
            IQueryable<cuarto> res = (from s in entities.cuarto where s.fk_reserva == fk_reserva select s);
            if (res.Count() > 0)
                return res.ToList();
            else
                return null;
        }

        public List<cuarto> getAllCuartosByHotel(int hotel)
        {
            HotelEntities entities = new HotelEntities();
            return (from s in entities.cuarto where s.fk_hotel == hotel select s).ToList();
        }

        public List<cuarto> getCuartosDisponiblesByHotel(int hotel)
        {
            HotelEntities entities = new HotelEntities();
            return (from s in entities.cuarto where s.fk_hotel == hotel && s.fk_reserva == null select s).ToList();
        }

        public bool save(CuartoDC cuartos)
        {
            HotelEntities entities = new HotelEntities();
            cuarto aux = new cuarto();
            aux.idcuarto = cuartos.Idcuarto;
            aux.capacidad = cuartos.Capacidad;
            aux.precio = cuartos.Precio;
            aux.piso = cuartos.Piso;
            aux.fk_hotel = cuartos.Fk_hotel;
            aux.fk_reserva = cuartos.Fk_reserva;
            aux.numhab = cuartos.Numhab;
            entities.cuarto.Add(aux);
            int res = entities.SaveChanges();
            if (res > 0)
                return true;
            else
                return false;
        }

        public bool update(CuartoDC cuartos)
        {
            HotelEntities entities = new HotelEntities();
            IQueryable<cuarto> res = (from s in entities.cuarto where s.idcuarto == cuartos.Idcuarto select s);
            if (res.Count() > 0)
            {
                cuarto aux = res.First();
                aux.idcuarto = cuartos.Idcuarto;
                aux.capacidad = cuartos.Capacidad;
                aux.precio = cuartos.Precio;
                aux.piso = cuartos.Piso;
                aux.fk_hotel = cuartos.Fk_hotel;
                aux.fk_reserva = cuartos.Fk_reserva;
                aux.numhab = cuartos.Numhab;
                int result = entities.SaveChanges();
                if (result > 0)
                    return true;
                else
                    return false;
            }
            return false;
        }

    }
}